home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-13 | 3.5 KB | 96 lines | [TEXT/ttxt] |
- language: infix-dylan
- module: hello-module
-
- // Copyright © 1994 by Apple Computer, Inc. All rights reserved.
-
- define class <hello-behavior> (<behavior>)
- end class;
-
- define method behavior-setup-menus (behavior :: <behavior>,
- next :: <list>,
- main-handler :: <main-handler>) => ()
- next-method();
-
- enable-item(#"new");
- end method;
-
- define method behavior-event (behavior :: <hello-behavior>,
- next :: <list>,
- main-handler :: <main-handler>,
- event :: <menu-event>,
- id == #"new") => ()
- ignore(behavior, next, main-handler, event, id);
- make-hello-window();
- end method;
-
- define method behavior-event (behavior :: <hello-behavior>,
- next :: <list>,
- main-handler :: <main-handler>,
- event :: <open-application-event>,
- id :: <object>) => ()
- ignore(behavior, next, main-handler, event, id);
- make-hello-window();
- end method;
-
- define class <hello-message-property> (<property>)
- end class;
-
- define method get-property-value (property :: <hello-message-property>,
- property-type == $pContents) => value :: <ae-desc>;
- ignore(property-type);
-
- let text-view = find-sub-view(property.container, #"hello-text");
- make-descriptor(text-view.text);
- end method;
-
- define method set-property-value (property :: <hello-message-property>,
- property-type == $pContents,
- data :: <ae-desc>) => ()
- ignore(property-type);
- let text-view = find-sub-view(property.container, #"hello-text");
- text-view.text := as-string(data);
- invalidate-all(text-view);
- end method;
-
- define class <hello-scripting-behavior> (<behavior>)
- end class;
-
- define method behavior-get-property (behavior :: <hello-scripting-behavior>,
- next :: <list>,
- window :: <window>,
- property-type == $pContents) => <property>;
- ignore(behavior, next);
-
- make(<hello-message-property>,
- property-type: property-type,
- container: window);
- end method;
-
- define constant make-hello-window =
- method ()
- let static-text = make(<static-text>,
- identifier: #"hello-text",
- location: point(10, 10),
- extent: point(200, 50),
- text: get-string($hello-string-id));
-
- let window = make-scrolling-window(list(static-text),
- location: point(50, 50),
- extent: point(300, 200),
- title: get-string($hello-window-title-id),
- resizable: #t,
- zoomable: #t,
- closable: #t,
- target-view: static-text);
- add-behavior(window, make(<hello-scripting-behavior>));
- open(window);
- end method;
-
- define method init-hello () => ()
- install-menu(get-resource-menu($file-menu-id));
- install-menu(get-resource-menu($edit-menu-id));
-
- add-behavior (*main-handler*, make(<hello-behavior>));
- end method;
-
- set-library-init-function(init-hello)